home *** CD-ROM | disk | FTP | other *** search
/ JCSM Shareware Collection 1993 November / JCSM Shareware Collection - 1993-11.iso / cl720 / qbnws31j.lzh / ZEROTRIM.ASM < prev    next >
Assembly Source File  |  1992-01-25  |  1KB  |  47 lines

  1. ;ZeroTrim.ASM
  2. ;Copyright (c) 1992 Jay Munro
  3. ;QB45 version
  4. ;Syntax
  5. ;  Trimmed$ = ZeroTrim$(XString$)
  6. ;
  7. ;  Where XString contains leading CHR$(0)'s, Spaces (32), or Ascii Zeros
  8. ;  Chr$(48).
  9. ;Compile With Masm 5.1 or later
  10.  
  11. .Model Medium, Basic
  12. .Data
  13.  
  14.    DescLen      DW  ?
  15.    DescAdr      DW  ?
  16.    
  17. .Code
  18.  
  19. ZeroTrim Proc   XString:Word
  20.        Mov  BX,XString          ;get address of XString descriptor
  21.        Mov  CX,[BX]             ;get length of XString
  22.        Jcxz Done                ; goofy user, passed zero length string
  23.        Mov  BX,[BX+2]           ;get address of XString into BX
  24.  
  25. TrimLoop:
  26.        Mov  AL,Byte Ptr [BX]    ;get character from XString
  27.        Or   AL,AL               ;is it a CHR$(0)?
  28.        Jz   @F                  ;yes, go back for more
  29.        Cmp  AL,32               ;is it a space character?
  30.        Jz   @F                  ;yes, go back for more
  31.        Cmp  AL,'0'              ;is it a a 0 character?
  32.        Jnz  Done                ;no, then we're done
  33. @@:
  34.        Inc  BX                  ;Point BX at next character
  35.        Loop TrimLoop            ;go back for more
  36.  
  37. Done:
  38.        Mov  DescLen,CX          ;assign DescLen the length of trimmed XString
  39.        Mov  DescAdr,BX          ;and address of beginning of string
  40.        Mov  AX, OffSet DescLen  ;get address of DescLen into AX
  41.  
  42. Exit:
  43.        Ret                      ;return to Basic with AX pointing at descriptor
  44.  
  45. ZeroTrim EndP
  46. End
  47.